home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / clipper / nannws31.zip / EX01_PAS.PAS < prev    next >
Pascal/Delphi Source File  |  1988-08-09  |  2KB  |  54 lines

  1. { Pascal source code - udf procedure }
  2. { Copyright (c) 1988 Nantucket Corp. }
  3. Module ClipPas;
  4.  
  5. const
  6.    UNDEF     = 0;
  7.    CHARACTER = 1;
  8.    NUMERIC   = 2;
  9.    LOGICAL   = 4;
  10.    DATE      = 8;
  11.    MPTR      = 32;   { or'ed with type when passed by reference }
  12.    MEMO      = 65;
  13.    NEWLINE   = chr(13);
  14.    ENDSTR    = chr(0);
  15.  
  16. type
  17.    datestr   = packed array [1..8] of char;
  18.    charstr   = packed array [1..7] of char;
  19.    adsdate   = ads of datestr;
  20.    adschar   = ads of charstr;
  21.  
  22.    function _parc    : adschar [c,varying]; extern;
  23.    function _parinfa : integer [c,varying]; extern;
  24.    function _parni   : integer [c,varying]; extern;
  25.    function _pards   : adsdate [c,varying]; extern;
  26.    procedure _retc             [c,varying]; extern;
  27.  
  28.    procedure ArrFunc(vars i,j,k : integer);
  29.    { One char parameter is received by far reference.  }
  30.    { Far reference is specified with the VARS keyword. }
  31.    var
  32.       x, y : integer;
  33.       str1 : adschar;
  34.    begin
  35.       for x := 1 to _parinfa(1, 0) do
  36.       begin                         {string variables }
  37.          { string variables }
  38.          if (_parinfa(1, x) = CHARACTER) then
  39.          begin
  40.             writeln(output, _parc(1, x)^);
  41.             _retc((_parc(1,x)));
  42.          end;
  43.  
  44.          { integer or floating point }
  45.          if (_parinfa(1, x) = NUMERIC) then
  46.             WriteLn(output, _parni(1, x):-3)
  47.          else
  48.             { dates }
  49.             if (_parinfa(1, x) = DATE) then
  50.                WriteLn(output, _pards(1, x)^);
  51.       end;
  52.    end;
  53. end.
  54.